Anonymous Functions এবং Lambda Expressions

Computer Programming - কেডিবি (KDB+) - ফাংশন এবং এক্সপ্রেশন (Functions and Expressions in Q)
238

Anonymous Functions এবং Lambda Expressions হল ফাংশনাল প্রোগ্রামিংয়ের গুরুত্বপূর্ণ অংশ, যা একাধিক ডেটা প্রক্রিয়াকরণের জন্য শক্তিশালী টুলস হিসেবে কাজ করে। Q ভাষায়, Anonymous Functions বা Lambda Functions ব্যবহৃত হয় এমন ফাংশন তৈরি করার জন্য যেগুলো কোনও নাম ছাড়াই একবারের জন্য ব্যবহৃত হয়। এগুলি সাধারণত ছোট ফাংশন তৈরিতে ব্যবহৃত হয় যেখানে ফাংশনের নাম রাখা প্রয়োজন হয় না।


১. Anonymous Functions (এনোনিমাস ফাংশন)

Anonymous functions হল এমন ফাংশন যা কোনো নাম ছাড়াই সরাসরি কোডে ডিফাইন করা হয় এবং সাধারণত একটি এক্সপ্রেশন হিসেবে ব্যবহৃত হয়। Q ভাষায় এটি {} (ক্রলে ব্রেস) দ্বারা চিহ্নিত করা হয়। এগুলি খুবই ছোট এবং সাধারণ ফাংশন তৈরিতে সহায়ক।

Example: Anonymous Function

add: {x + y}    / একটি নামবিহীন ফাংশন যা x এবং y যোগ করবে
add 3 5          / আউটপুট: 8

এখানে {x + y} হল একটি অ্যানোনিমাস ফাংশন, যেটি x এবং y এর যোগফল দেয়। এটি add নামের ভেরিয়েবলের মধ্যে স্টোর করা হয়েছে।


২. Lambda Expressions (ল্যাম্বডা এক্সপ্রেশন)

Lambda Expressions হল আরও একটি ধরনের অ্যানোনিমাস ফাংশন, যেগুলি সাধারণত এক লাইনে ফাংশন তৈরি করতে ব্যবহৃত হয়। এটি বিশেষভাবে ফাংশনাল প্রোগ্রামিং ভাষায় ব্যবহৃত হয়।

Q তে Lambda Expressions ব্যবহার করার সময় {} (ক্রলে ব্রেস) ব্যবহার করা হয় এবং এর মধ্যে ফাংশনল ফাংশনের কোড থাকে।

Example: Lambda Expression

square: {x * x}   / একটি Lambda Expression যা x এর বর্গ দেয়
square 4           / আউটপুট: 16

এখানে {x * x} হল একটি ল্যাম্বডা এক্সপ্রেশন যা একটি সংখ্যা x এর বর্গ বের করে। আপনি ল্যাম্বডা এক্সপ্রেশনটি সরাসরি ফাংশন হিসেবে ব্যবহার করতে পারেন।


৩. Lambda Expressions এবং Higher-Order Functions

Q ভাষায় ল্যাম্বডা এক্সপ্রেশন বিশেষভাবে Higher-Order Functions (যেগুলি অন্যান্য ফাংশন গ্রহণ করে বা ফিরিয়ে দেয়) তৈরি করতে ব্যবহৃত হয়। আপনি ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে ফাংশনকে আরও সাধারণ ও শক্তিশালীভাবে ব্যবহার করতে পারেন।

Example: Higher-Order Function with Lambda Expression

mapSquares: {x each x * x}  / mapSquares একটি হাইয়ার-অর্ডার ফাংশন
mapSquares 1 2 3 4          / আউটপুট: 1 4 9 16

এখানে mapSquares একটি হাইয়ার-অর্ডার ফাংশন যা তালিকার প্রতিটি উপাদানের বর্গ বের করে, এবং এটি ল্যাম্বডা এক্সপ্রেশন {x * x} ব্যবহার করে।


৪. Anonymous Functions এবং Lambda Expressions ব্যবহার

Anonymous Functions এবং Lambda Expressions যখন একসঙ্গে ব্যবহার করা হয়, তখন এটি ফাংশনাল প্রোগ্রামিংয়ের শক্তিশালী অংশ হয়ে দাঁড়ায়। নিচে একটি উদাহরণ দেওয়া হল যেখানে দুইটি ফাংশন একত্রে ব্যবহার করা হয়েছে:

Example: Combining Anonymous Functions and Lambda Expressions

filterEven: {x each x mod 2 = 0}  / একটি ফিল্টার ফাংশন যা শুধু পার্শ্বিক সংখ্যাগুলিকে বাছাই করে
filterEven 1 2 3 4 5 6              / আউটপুট: 2 4 6

এখানে filterEven একটি ফাংশন যা প্রতিটি উপাদানের মধ্যে একে একে যাচাই করে কোনটি ইভেন (পার্শ্বিক) সংখ্যা এবং তা বেছে নেয়। {x mod 2 = 0} হল একটি ল্যাম্বডা এক্সপ্রেশন যা ইভেন সংখ্যাগুলিকে চেক করে।


৫. Anonymous Functions এবং Lambda Expressions এর সুবিধা

  • সংক্ষিপ্ততা: Anonymous Functions এবং Lambda Expressions কোড সংক্ষিপ্ত ও সহজ করে তোলে, বিশেষ করে যখন ফাংশনগুলি একবারের জন্য ব্যবহৃত হয়।
  • ফাংশনাল প্রোগ্রামিং সুবিধা: ফাংশনাল প্রোগ্রামিংয়ের মত ফিচার যেমন higher-order functions, map, filter, ইত্যাদি তৈরি করতে সাহায্য করে।
  • ফাংশনের মধ্যে পাস করা: আপনি Anonymous Functions বা Lambda Expressions অন্য ফাংশনে পাস করতে পারেন, যেগুলি সাধারণভাবে নির্দিষ্ট কাজের জন্য ডিজাইন করা হয়।
  • সহজ ডেটা ম্যানিপুলেশন: এই ফাংশনগুলো ডেটা ম্যানিপুলেশন করতে সুবিধাজনক, যেমন লিস্ট বা টেবিলের সাথে কাজ করা।

সারসংক্ষেপ

Anonymous Functions এবং Lambda Expressions হল শক্তিশালী টুলস যা Q ভাষায় ফাংশনাল প্রোগ্রামিংকে সহজ এবং কার্যকর করে তোলে। এগুলি ছোট এবং সংক্ষিপ্ত ফাংশন তৈরিতে ব্যবহার হয়, যেখানে কোনও নামের প্রয়োজন হয় না, এবং এটি সাধারণত এক্সপ্রেশন হিসেবে ব্যবহৃত হয়। Q তে ল্যাম্বডা এক্সপ্রেশন ব্যবহার করে আপনি দ্রুত এবং দক্ষভাবে ডেটা ম্যানিপুলেশন, কুইরি, এবং ফাংশনাল প্রোগ্রামিং করতে পারবেন।

Content added || updated By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...